The use of highly-capable mobile communication devices such as the iPhone®, the BlackBerry® and the Treo® is increasing rapidly. Such devices often transmit and receive large amounts of data such as video and audio clips, photographs and email attachments. Although contemporary mobile communication devices are capable of creating and utilizing these types of media content, they do not intelligently use the communication media available to them to optimize transmission and receipt of media files. Instead, mobile communication devices tend to immediately send or receive data, insensitive to the cost charged by operators, the type of service currently available or the remaining battery life. This can result not only in large bills for consumers, but also in the rapid loss of battery life, making the device useless until it is recharged. These problems are exacerbated by factors such as the proliferation of connectivity options, the wide variations in carrier data plans and treatment of device roaming, transient appearance and disappearance of short-range wireless connectivity and the need to balance user expectations and device capabilities.
Contemporary mobile communication devices typically have more than one wireless network interface. Many contemporary mobile communication devices have one or more short-range wireless interfaces (e.g., WiFi, Bluetooth) and one or more long-range wireless interfaces (e.g., a cellular interface such as GPRS, EDGE, 3G). Additionally, mobile communication devices can be docked, in which case wired connectivity is available. Importantly, these different network interfaces vary widely in coverage, cost, and capability. For example, WiFi has limited coverage, low cost, and high capacity. In contrast, GPRS has extensive coverage, high cost, and low capacity.
Additionally, users of mobile communication devices tend to use a wide range of applications. Unlike traditional mobile phones that only support voice and limited text-based applications, the mobile communication device users of today run applications that utilize rich multimedia content such as video, which requires the processing and transmission of large amounts of data. Importantly, some applications are more delay-tolerant than others. For example, some business emails are extremely urgent, whereas data transmissions associated with entertainment applications can be less so.
There is a wide range of desired functionalities and resource requirements among different users and applications, as well as a corresponding diversity of cost and capability between different network interfaces. Yet, mobile applications typically neither schedule data communication nor make intelligent choices between multiple network interfaces. The rare application that does schedule its data communication focuses only on delivering performance levels acceptable to that application in isolation. There is no coordination and scheduling of connectivity at the mobile communication device level to account for divergent needs of different applications running simultaneously. This limits the performance of the mobile communication device and the applications deployed thereon. It also forces application vendors to incur costs for developing scheduling algorithms for their specific applications. Additionally, it exposes users of mobile communication devices to unnecessary usage costs, because data could potentially be sent on less expensive network interfaces than the ones selected by application designers. It would be desirable to address these shortcomings.